package com.wx.javacode.poly_.polyparameter_;

/**
 * ClassName:PloyParameter
 * Package :com.wx.javacode.poly_.polyparameter_
 * Description :
 *
 * @Author : coder_mu
 * @Create : 2023/5/21 - 20:40
 */
public class PloyParameter {
    public static void main(String[] args) {
        Worker worker = new Worker("jay", 100);
        Manager manager = new Manager("tim", 10, 200);
        PloyParameter ployParameter = new PloyParameter();
        ployParameter.showEmpAnnual(worker);
        ployParameter.showEmpAnnual(manager);
        ployParameter.testWork(worker);
        ployParameter.testWork(manager);
    }

    //实现获取 任意员工的年工薪，并在main方法中调用该方法
    public void showEmpAnnual(Employee e) {
        System.out.println(e.getAnnual());//动态绑定机制
    }

    //添加一个方法，testWork,如果是普通员工，则调用 work 方法，如果是经理，则调用 manage 方法
    public void testWork(Employee e) {
        if (e instanceof Worker) {
            ((Worker) e).work();//向下转型可以调用Worker内特有的方法
        } else if (e instanceof Manager) {
            ((Manager) e).manage();
        } else {
            System.out.println("不做处理");
        }
    }
}
